package April.twenty_three;


import com.mysql.cj.jdbc.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {
    /*
    注册驱动
     */
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
//        注册驱动
        //    一下这种注册方法
        //    硬编码，后期不利于程序的扩展和维护
        //    源码显示 在Driver中 new了一个Drivaer 所以下面这种方式会造成资源的浪费
        //DriverManager.registerDriver(new Driver());
//        另外一种注册方法 利用之后学的东西 反射，将驱动类加入到内存中
        Class.forName("com.mysql.jdbc.Driver");
//        获得数据库连接 返回值 Connection接口的实现类
        Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/myBase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC",
                "root", "123");
        System.out.println(conn);
//        通过数据库连接对象，获得sql语句的执行者对象
//        conn对象调用方法， statement creatStatement() 获取Statement对象，将sql语句发送到数据库
//        返回值是Statement接口的实现类对象，在mysql驱动程序
        Statement stat =  conn.createStatement();

//        执行sql语句
//        通过执行者对象调用方法执行sql语句，获取结果
//        int executeUpdate(String sql)  执行数据库中的sql语句，insert delete update
//        返回值int ，表示操作成功多少行数据表
        int row = stat.executeUpdate
                ("INSERT INTO java1(sname,sprice,sdesc) VALUE ('汽车用品',50000,'疯狂涨价')");
        System.out.println(row);

//        6. 释放资源 一堆close（）
        stat.close();
        conn.close();
    }
}
